package com.sky.service;


import com.sky.dto.VisaProductDTO;
import com.sky.dto.VisaProductPageQueryDTO;
import com.sky.dto.VisaProductUpdateDTO;
import com.sky.entity.VisaProduct;
import com.sky.result.PageResult;

import java.util.List;

public interface VisaProductService {
    /**
     * 添加签证产品
     * @param visaProductDTO
     * @return
     */
    Long addVisaProduct(VisaProductDTO visaProductDTO);

    /**
     * 分页查询签证产品
     * @param visaProductPageQueryDTO
     * @return
     */
    PageResult page(VisaProductPageQueryDTO visaProductPageQueryDTO);


    /**
     * 根据id查询签证产品
     *
     * @param id
     * @return
     */
    VisaProduct getById(Long id);
    /**
     * 修改签证产品
     * @param visaProductUpdateDTO
     */
    void updateVisaProduct(VisaProductUpdateDTO visaProductUpdateDTO);

    /**
     * 启用或禁用签证产品
     * @param id
     * @param isShow
     */
    void startOrStop(Long id, Integer isShow);

    

    /**
     * 删除签证产品
     * @param id
     */
    void deleteVisaProduct(Long id);

    List<VisaProduct> getVisaProductsByCountryId(Long countryId);

        /**
     * 获取签证产品详情（包含国家名称）
     * @param id 签证产品id
     * @return 签证产品详情
     */
    VisaProduct getDetailById(Long id);

    /**
     * 获取所有启用的签证产品列表（用于下拉选择）
     * @return
     */
    List<VisaProduct> getAllForSelect();

    /**
     * 获取所有启用的签证产品列表（用于下拉选择）
     * @return
     */
    List<VisaProduct> getAllEnabledProducts();
}
